home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / BNU202.ZIP / BNU.DOC < prev    next >
Text File  |  1989-10-26  |  66KB  |  1,717 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.     ┌───────────────────────────────────────────────────────────┐
  13.     │     BNU Rev 5 FOSSIL Compatible Communications Driver     │
  14.     │                        Release 2.02                       │
  15.     └───────────────────────────────────────────────────────────┘
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                           15th October, 1992
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.                           Copyright (C) 1992
  32.  
  33.             David Nugent and Unique Computing Pty Limited
  34.  
  35.                         Melbourne, Australia.
  36.  
  37.  
  38.  
  39.                          FidoNet  3:632/348.0
  40.                         AlterNet  7:833/387.0
  41.                          FreeNet  23:2/3.0
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.     BNU is 'freely'  available copyrighted software, and supplied
  54.     no charge to system operators  of  Fidonet(tm) and 'Othernet'
  55.     public access amateur network systems.  It is  NOT  available
  56.     in this form  for  commercial  use  or use outside of amateur
  57.     EMail systems.
  58.  
  59.     Please read the License details  at  the end of this document
  60.     on contacting the author regarding commercial  application of
  61.     BNU and associated products.
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.                       BNU Revision 5 FOSSIL Communications Driver
  69.                                                      Version 2.02
  70.  
  71.  
  72.  
  73.     BNU is a  FOSSIL  compatible  Communications driver, suitable
  74.     for use with the following (among  others) bulletin board and
  75.     FidoNet(tm) mailer software:
  76.  
  77.  
  78.      Fido v11,12  Tom Jennings, Fido Software
  79.      BinkleyTerm  Vince Perriello, Bob Hartman, Alan Applegate,
  80.                   & Bit Bucket Software
  81.      Opus-CBCS    Wynn Wagner III, The POLE of Dallas
  82.      QuickBBS     Adam Hudson
  83.      TPBoard      John Schnieder & Rick Peterson
  84.      SEAdog       Thom  Henderson, System Enhancement Associates
  85.      D'Bridge     Chris Irwin
  86.      FrontDoor    Joaquim Homrighausen, Interzone Software, Inc.
  87.  
  88.  
  89.     It handles hardware  specific  aspects  of communications, to
  90.     enable the above applications to run in multiple environments
  91.     which are supported by a FOSSIL  compatible  driver.   BNU is
  92.     designed for the IBM PC, XT, AT, AT/386 and PS/2  range under
  93.     the MS-DOS operating  system  version 2.10 and above, OS/2 in
  94.     'DOS compatibility' mode and under  PC-MOS/386.   It may also
  95.     be compatible with other environments which emulate MS-DOS.
  96.  
  97.     The term 'FOSSIL'  is  short  for "Fido Opus SEAdog  Standard
  98.     Interface Layer".  It  is  a  generic hardware interface used
  99.     mainly by bulletin board systems  and Fidonet compatible mail
  100.     software which evolved from the efforts of Wynn  Wagner,  Bob
  101.     Hartman and Vince   Perriello.    The  current  "Revision  5"
  102.     standard makes it possible for  a lot of software to run on a
  103.     wide variety of hardware platforms capable of  running MS-DOS
  104.     but with distinct and incompatible hardware.
  105.  
  106.     BNU's main task  is  communications  handling.  It is a fully
  107.     interrupt driven communications   driver   which  effectively
  108.     handles communications "in  background",  and   continues  to
  109.     receive and transmit   characters   asynchronously  with  any
  110.     program or application running.   The application itself need
  111.     not be concerned   about   the  time  critical   aspects   of
  112.     communications, nor the capabilities, limitations or features
  113.     of the hardware itself.  These are all handled by BNU itself.
  114.  
  115.     BNU is one  of many FOSSIL drivers available.  BNU implements
  116.     many features found in other(tm) FOSSIL drivers, sometimes in
  117.     a slightly different  way.    Known   differences   will   be
  118.     highlighted.
  119.  
  120.     This package contains BNU.COM, with the driver itself being a
  121.     TSR program (Terminate and Stay Resident) which may be loaded
  122.     and unloaded, activated  or  made  dormant "on-the-fly";  and
  123.     also BNU.SYS, a  device  driver  implementation  loaded  from
  124.     CONFIG.SYS.  This is not as 'flexible'  as using BNU.COM, but
  125.     in general conserves some memory and allows loading  in  some
  126.     environments where the TSR implementation cannot be used.
  127.  
  128.  
  129.  
  130.  
  131.                                 - 1 -
  132.  
  133.  
  134.                       BNU Revision 5 FOSSIL Communications Driver
  135.                                                      Version 2.02
  136.  
  137.     Some of BNU's unique and more interesting features are:
  138.  
  139.          o    BNU  has  been  built  to  handle up to 4 COM ports
  140.               concurrently in up to 16 different configurations,
  141.  
  142.          o    It has an "open architecture"  which  will allow is
  143.               adaptation later  in  its  development  to  support
  144.               multiport shared    interrupt    and    intelligent
  145.               asynchronous IO boards,
  146.  
  147.          o    It supports the 16550 USART in fully buffered mode,
  148.               providing the capability of much higher baud rates,
  149.               performance and  significantly  less  CPU  overhead
  150.               especially in multitasking environments,
  151.  
  152.          o    The driver is extremely FAST, optimised  for speed,
  153.               and takes up very little memory,
  154.  
  155.          o    Incorporates  an optional "diagnostic" mode, so you
  156.               (the user) can inspect  the  state  of  the  FOSSIL
  157.               driver itself;    assisting   in   debugging    and
  158.               optimisation of   software  being  written  to  use
  159.               FOSSIL calls,  and   in   attempting  to  determine
  160.               problems in  software  using a FOSSIL,  such  as  a
  161.               mailer, BBS or BBS 'door',
  162.  
  163.          o    Has  'hooks'  for  an installable driver to support
  164.               network and  multitasking  software,  forcing  ill-
  165.               behaved processor intensive programs  to  give more
  166.               of their  time-slice to the system when inactive or
  167.               when simply "polling"  communications  or  keyboard
  168.               functions for activity or status reports,
  169.  
  170.          o    Allows 'fast' routing of screen output directly via
  171.               the ANSI  driver,  making  "FOSSIL"  screen  output
  172.               calls significantly   faster  than  going  via  DOS
  173.               itself,
  174.  
  175.          o    Allows for problems  in  some  XT  &  AT BIOS' when
  176.               16550AN's are installed:  very often  a  BIOS  will
  177.               not 'see'  the  communications  chip during startup
  178.               diagnostics -  so   BNU  will  force  the  BIOS  to
  179.               recognise it automatically,
  180.  
  181.          o    Provides a full range of utility functions  in  the
  182.               same .COM  file,  including built-in carrier watch,
  183.               system reboot, lock baud rate and/or communications
  184.               parameters and allowing  some  PC  BIOS  compatible
  185.               non-FOSSIL aware  software to take advantage  of  a
  186.               interrupt driven communications,
  187.  
  188.          o    Allows   resizing  of  communications  buffers  and
  189.               locking/unlocking   of   baud   rates   and   other
  190.               communications parameters "on-the-fly",
  191.  
  192.          o    Provides a means of displaying the currently loaded
  193.               driver's "status" and active parameters.
  194.  
  195.  
  196.  
  197.                                 - 2 -
  198.  
  199.  
  200.                       BNU Revision 5 FOSSIL Communications Driver
  201.                                                      Version 2.02
  202.  
  203.     BNU.COM is both a FOSSIL driver (TSR) and a utility which can
  204.     manipulate the resident   version   of   itself.    On  first
  205.     successful loading, it will terminate  and  leave  the driver
  206.     portion of itself   (only   about  5K  or  so   plus   buffer
  207.     requirements) resident, and  allocate  communication  buffers
  208.     for each of the enabled ports (typically  using 14K for a one
  209.     port install when  'diagnostics' mode is enabled).   It  then
  210.     captures and utilises  the  system's  INT 14H (communications
  211.     services) vector and services  requests  for  all  FOSSIL and
  212.     non-FOSSIL aware programs using the INT 14H interface.
  213.  
  214.     BNU will NEVER  load  itself  more than once,  unless  within
  215.     different tasks when    using    a   multitasker,   such   as
  216.     PC-MOS/386(tm), DESQview(tm), DoubleDOS(tm) or VM/386(tm).
  217.  
  218.     This documentation assumes a working knowledge of MS-DOS, and
  219.     no effort is made to explain MS-DOS  functions,  commands  or
  220.     setup.  Some familiarity  with  BBS or mail capable  software
  221.     and other FOSSIL drivers will definitely be an advantage, but
  222.     not required.
  223.  
  224.  
  225.  
  226.  
  227.                               USING BNU
  228.  
  229.  
  230.  
  231.     When running BNU,   avoid  using  any  other  software  which
  232.     purports to enhance   communications    products   (such   as
  233.     16550.EXE).  These WILL NOT work, and could cause your system
  234.     to crash or work unreliably.  BNU already uses  the 16550 and
  235.     16550AN to full advantage.
  236.  
  237.     Avoid loading DOS's   MODE   command   with   BNU.    BNU  is
  238.     incompatible with it's communications  handling  -  if loaded
  239.     after BNU, then  both may fail to operate reliably.   Printer
  240.     redirection is usually  ok,  provided  MODE  is loaded before
  241.     BNU.
  242.  
  243.     If you need to set a COM port's  baud rate (which is why MODE
  244.     is most often  used),  then you can get BNU  to  do  that  by
  245.     "locking" the baud  rate  (using  BNU /L as documented below)
  246.     which sets the COM port immediately  to  that rate.  Remember
  247.     to "unlock" the  baud  rate  if  not  using a constant  speed
  248.     between computer and modem.
  249.  
  250.     BNU.COM would normally  be  loaded  in your AUTOEXEC.BAT, and
  251.     installed as part of your normal  system  startup.  A typical
  252.     command line might be:
  253.  
  254.          BNU /F
  255.          [Loads BNU.COM with default settings and fast ANSI]
  256.  
  257.     BNU will respond  with  a  short  copyright   notice  and  an
  258.     indication that it  has been successfully loaded.  The number
  259.     of ports installed for will also be shown.
  260.  
  261.  
  262.  
  263.                                 - 3 -
  264.  
  265.  
  266.                       BNU Revision 5 FOSSIL Communications Driver
  267.                                                      Version 2.02
  268.  
  269.     BNU.SYS must be  loaded  from CONFIG.SYS (and probably can be
  270.     using QuarterDeck's DEVICE.COM under DESQview but I have only
  271.     run it this way for short periods)  using  a  "device"  line,
  272.     such as:
  273.  
  274.          device = C:\BNU.SYS /P2 /L0:19200,8N1 /F
  275.          [Loads BNU.SYS  for  2  ports, port 0 (COM1)  locked  at
  276.          19200 baud  8  data  bits 1 stop bit normal parity, fast
  277.          ANSI]
  278.  
  279.     A similar copyright message is  displayed  as  an  indication
  280.     that the driver has been installed.
  281.  
  282.     If BNU encounters  an error in the command line,  the  driver
  283.     will NOT be  installed.   The  device driver version displays
  284.     the command line parameter in error.
  285.  
  286.     BNU has been successfully run  loaded  "high"  above the 640K
  287.     mark using both   QuarterDeck's   QEMM(tm)   and    Qualitas'
  288.     386^MAX(tm) 386 memory  management  products.   It  should be
  289.     noted that there may be performance  differences  as a result
  290.     of either 386i  virtual  mode  switching  or  differences  in
  291.     hardware RAM access  speeds between mother-board RAM and that
  292.     used on an extended RAM card.  You should test the results on
  293.     your own hardware before deciding  which  method  is  better,
  294.     since generalisations without  considering  all  the  factors
  295.     involved can be misleading.
  296.  
  297.     Other enhanced memory  products may or may not work, but I am
  298.     either not familiar with them  or  do  not  know enough about
  299.     them to comment.
  300.  
  301.     Since BNU.COM can  be  unloaded  at  any  time   (unless  BNU
  302.     considers it unsafe to do so for various reasons), you should
  303.     be aware that  doing  so sometimes creates "holes" in memory.
  304.     This is not  a  problem  so   far   as   MS-DOS   or  various
  305.     applications running in it are concerned, but  the  effect of
  306.     releasing more memory  for  DOS  to use may be lost.  This is
  307.     almost always the  case when unloaded  from  within  a  batch
  308.     file: the memory freed will not be available until  after the
  309.     batch file terminates.
  310.  
  311.     If the desired  effect  is to "disable" BNU completely, refer
  312.     to the /Q and /C command line  switches  below.   This leaves
  313.     BNU loaded, but  provides  a  means of disabling  the  driver
  314.     completely and forces  use of the BIOS INT 14H functions or a
  315.     previously installed driver.
  316.  
  317.     One note regarding PS/2 hardware  and  applications which use
  318.     its specific INT  14H  functions  (though I haven't  actually
  319.     seen any).  A PS/2's extended BIOS contains a superset of INT
  320.     14H services, which  were designed after FOSSILs first become
  321.     available for PC's.    The  additional   services   are   NOT
  322.     compatible with the extended functions supported  by  FOSSIL,
  323.     and you should  therefore  either  unload  (/U) or deactivate
  324.     (/Q) BNU prior running such software.
  325.  
  326.  
  327.  
  328.  
  329.                                 - 4 -
  330.  
  331.  
  332.                       BNU Revision 5 FOSSIL Communications Driver
  333.                                                      Version 2.02
  334.  
  335.                            DEFAULT SETTINGS
  336.  
  337.  
  338.     By default, BNU  uses  1K  (1024 byte) communications buffers
  339.     for both transmit and receive.  This should be sufficient, if
  340.     not excessive, for most applications.   This  may  need to be
  341.     varied for systems  running  at slow (less than  6MHZ)  clock
  342.     speeds, use modems  with  higher  baud  rates,  make  use  of
  343.     special modem technology, run under  multitasking software or
  344.     run on a  network.   Some applications (for example  terminal
  345.     emulation systems and bulletin boards) require more buffering
  346.     because of the nature of how they communicate.
  347.  
  348.     The fast 'ANSI' output is DISabled by default.  The option to
  349.     use the faster  output  method  will normally work well under
  350.     standard MS-DOS, DESQview  or  most  DOS-based  environments.
  351.     This will NOT  work under PC-MOS/386 as it makes  use  of  an
  352.     undocumented MS-DOS feature  not  supported by that operating
  353.     system.
  354.  
  355.     After installation (only the first  successful  invocation of
  356.     BNU.COM actually loads the TSR portion), the FOSSIL  driver's
  357.     extended interrupt driven  functions  are  inactive, and only
  358.     the basic BIOS   services  are   provided   (by   BNU).    An
  359.     application must specifically   "initialise"   a   port   for
  360.     communications to make it become active and use the interrupt
  361.     driven functions.
  362.  
  363.     When BNU is  installed,  it  does a brief and simple hardware
  364.     diagnostic to detect what communications ports are valid.  If
  365.     errors are found  (most  PC BIOS'  miss  detection  of  16550
  366.     USARTS, cannot detect  non-standard  communications  hardware
  367.     and do not  look  for  anything  above COM2), the appropriate
  368.     BIOS tables and hardware bits  are  patched.  This means that
  369.     if you install and use non-standard port and IRQ settings for
  370.     a communications card,  and  tell  BNU about these  (via  the
  371.     BNUPORT utility) your  BIOS  will be changed to reflect this,
  372.     allowing other BIOS-compatible    programs    to    use   the
  373.     communications port (COM1 through COM4 only since the PC BIOS
  374.     can only support up to 4 ports).
  375.  
  376.  
  377.  
  378.  
  379.                          COMMAND LINE OPTIONS
  380.  
  381.  
  382.     Following is a  list  of  command line options  available  in
  383.     either or both   BNU.COM  and  BNU.SYS.   These  allow  "fine
  384.     tuning", setup and utility functions.
  385.  
  386.     Command line switches can be given  with a preceding dash (-)
  387.     or forward slash   (/).   Some  parameters   show   a   colon
  388.     separating the switch itself and a numeric parameter: this is
  389.     optional, and is  included  only  for readability.  An equals
  390.     (=) or comma (,) are NOT optional  and must be included since
  391.     these separate different parts of a command line switch.
  392.  
  393.  
  394.  
  395.                                 - 5 -
  396.  
  397.  
  398.                       BNU Revision 5 FOSSIL Communications Driver
  399.                                                      Version 2.02
  400.  
  401.     There are basically  two  "groups"  of command line switches.
  402.     The first are  configuration   switches,   which  affect  the
  403.     tuning, performance   and  behaviour  of  the  communications
  404.     driver.  These can  generally be combined on the same command
  405.     line (and invocation) without problems.   Exceptions (if any)
  406.     are noted where relevant.
  407.  
  408.     The second group are "utility" functions.  These switches are
  409.     normally used EXCLUSIVELY of all other switches.  That is, if
  410.     you use them, they must appear SEPARATELY on a  command line.
  411.     The switches in this group are:
  412.  
  413.          /C        Recapture INT 14H vector
  414.          /B        Reboot system unconditionally
  415.          /S        Display driver status
  416.          /H        Display help for command line switches
  417.          /U        Unload driver from memory
  418.          /W        Enable/disable carrier watch
  419.  
  420.     Remember that you  can  invoke BNU.COM multiple times with no
  421.     risk in loading the communications  driver  portion more than
  422.     once in any  logical  "task".   All  utilities   relating  to
  423.     BNU.COM are contained within the same .COM file.
  424.  
  425.     The device driver  version  works  a little differently.  Its
  426.     command line (specified  in  CONFIG.SYS)  must  contain  only
  427.     configuration items, since the utilities are  not  supported.
  428.     These are contained   within  a  separate  executable  called
  429.     BNUHELP.COM, and have a similar  -  if not identical - syntax
  430.     to the utility   functions   in   the   .COM  version.    Any
  431.     differences are noted below.
  432.  
  433.  
  434.  
  435.                                  ~~~
  436.  
  437.  
  438.  
  439.  
  440.     /T        Set Transmit buffer size
  441.               Available in .SYS and .COM versions
  442.  
  443.          eg.  /T:512
  444.               Sets 512 byte transmit buffers
  445.  
  446.          The default  transmit  buffer size is 1024 bytes.  Since
  447.          file transfers are "transmitter  driven" so far as speed
  448.          is concerned, this should be large enough to service the
  449.          interrupt driven transmitter without it "waiting"  to be
  450.          filled by the application.  These should be increased in
  451.          size where  multitaskers,  networks or faster baud rates
  452.          are being used.
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.                                 - 6 -
  462.  
  463.  
  464.                       BNU Revision 5 FOSSIL Communications Driver
  465.                                                      Version 2.02
  466.  
  467.     /R        Set Receive buffer size
  468.               Available in .SYS and .COM versions
  469.  
  470.          eg.  /R:2048
  471.               Sets RX buffer size of 2048 (2K) bytes
  472.  
  473.          The default  RX  (receive)  buffer  size  is 1K, or 1024
  474.          bytes.  In practice, only  a portion of this is actually
  475.          used on a constant basis, but this will be  dependant on
  476.          how fast an application can service the buffer (and keep
  477.          it empty).
  478.  
  479.          Buffer sizes  CAN  be  changed  "on-the-fly".  But at no
  480.          time can  both  the  receive  and  transmit  buffers  be
  481.          increased in size beyond the combined amount  when first
  482.          installed.  For  example,  if  BNU was installed with 2K
  483.          transmit and 4K receive buffers, only 6K is available to
  484.          each port in total.  Combined  buffer size cannot exceed
  485.          that 6K.  An attempt to exceed this amount  will  result
  486.          in an error.
  487.  
  488.          Changing buffer  sizes  whilst  communications tasks are
  489.          active will be disallowed.
  490.  
  491.          When modifying the buffer  sizes,  it  is  advisable  to
  492.          first specify  the  one  which is to "shrink"  in  size,
  493.          before the  one  which  will "grow".  For example, if 1K
  494.          buffers were active (with  a total of 2K available), and
  495.          you wished  to  change  these  to .5K receive  and  1.5K
  496.          transmit:
  497.  
  498.               BNU /T1536 /R512
  499.  
  500.          would result in an error (Maximum buffer size exceeded).
  501.          The result  could  be  achieved by changing the order of
  502.          the command line arguments to:
  503.  
  504.               BNU /R512 /T1536
  505.  
  506.  
  507.  
  508.     /P        Enable concurrent ports
  509.               Available in .SYS and .COM versions
  510.  
  511.          eg.  /P:2
  512.               Enables two ports for use concurrently
  513.  
  514.          This sets the number of ports which can be active at the
  515.          same time.  Up to 4 ports  can  be used (in this current
  516.          release), in up to 16 different configurations.
  517.  
  518.          By default, BNU enables one port for 'interrupt  driven'
  519.          use.  This  is the most memory conservative approach and
  520.          fits the requirements of the majority of installations.
  521.  
  522.          The current  version  does   not   support  shared  port
  523.          arrangements or  multi-port  'intelligent'   serial   IO
  524.          controllers.
  525.  
  526.  
  527.                                 - 7 -
  528.  
  529.  
  530.                       BNU Revision 5 FOSSIL Communications Driver
  531.                                                      Version 2.02
  532.  
  533.  
  534.          This switch  does  not  determine  WHICH  ports  will be
  535.          valid, only HOW MANY can run  FOSSIL driven at one time.
  536.          The driver  will  support  whichever  port   (0-15)  the
  537.          application selects.
  538.  
  539.  
  540.  
  541.  
  542.     /L        Lock ports baud rate and/or settings
  543.               Available in .SYS and .COM versions
  544.  
  545.          eg.  /L:0=19200
  546.               Locks baud rate on port 0 (COM1) to 19200
  547.               /L:1=38400,8N1
  548.               Locks port 1 (COM2) to 38400, and forces 8
  549.               data bits, no parity and 1 stop bit.
  550.               /L:0=0,7E1
  551.               Unlocks port 0 (COM1) if previously locked,
  552.               or leaves it 'floating' if not, then forces
  553.               7 data bits, even parity and 1 stop bit.
  554.  
  555.          The baud  rate given must be valid for a standard FOSSIL
  556.          driver, and can be one of  0  (unlock)  300,  600, 1200,
  557.          2400, 4800,  9600,  19200 or 38400.  High  speed  modems
  558.          locked at a baud rate of 9600 or above also have CTS/RTS
  559.          hand-shaking forced since these use the modem's internal
  560.          buffering which make use of CTS/RTS flow control.
  561.  
  562.          A baud  rate  specification  of  zero "unlocks" the baud
  563.          rate and resets handshaking  to  default  (whatever  the
  564.          application sets).
  565.  
  566.          When using  this  switch,  your  modem  MUST  support  a
  567.          constant modem  to  computer  speed,  otherwise any baud
  568.          rate change requested by an application will be ignored,
  569.          resulting in an incorrect  setting  between  your system
  570.          and remote.  The result will normally be  garbled  input
  571.          and output.
  572.  
  573.          When the  baud  rate  is locked, the port's baud rate is
  574.          set IMMEDIATELY.  The baud  rate  is  maintained  at the
  575.          locked rate  even  though  FOSSIL  is   not   active   -
  576.          applications making  use  of  BIOS  calls to change baud
  577.          rate will not succeed.   This  allows  non-FOSSIL  aware
  578.          applications to  be run without fear of  the  baud  rate
  579.          being changed   even  though  these  do  not  explicitly
  580.          support higher baud rates.
  581.  
  582.  
  583.  
  584.  
  585.     /F        Enables/disable 'fast' screen writes
  586.               Available in .SYS and .COM versions
  587.  
  588.          eg.  /F+       Enables 'fast' screen writes
  589.               /F-       Disables 'fast' screen writes
  590.  
  591.  
  592.  
  593.                                 - 8 -
  594.  
  595.  
  596.                       BNU Revision 5 FOSSIL Communications Driver
  597.                                                      Version 2.02
  598.  
  599.  
  600.          This switch  is  used  for versions of DOS which support
  601.          faster character output  via  the  undocumented  INT 29H
  602.          method (used to call the ANSI driver directly).   To  my
  603.          knowledge, this  will  work  on  all  DOS  versions 2.00
  604.          through 4.01, but since it  is  "undocumented", there is
  605.          no guarantee that it will work.
  606.  
  607.          This should NOT be enabled under PC-MOS/386  version 4.0
  608.          or below.
  609.  
  610.  
  611.  
  612.  
  613.     /O        Enable function 0x1c compatibility
  614.               Available in .SYS and .COM versions
  615.  
  616.          eg.  /O
  617.  
  618.          This switch  is used to enable "compatible" operation of
  619.          BNU in situations where either  X00  or Opus!Com worked,
  620.          but BNU  doesn't.   Due  to  a misunderstanding  of  the
  621.          FOSSIL specification,  X00 and Opus!Com return 0x1c (28)
  622.          whenever the highest function  number is requested by an
  623.          application instead  of  0x1b  (27)  as   required   the
  624.          Revision 5 specification (FSC-0015).
  625.  
  626.          Several applications  rely  on  the  'feature'  of these
  627.          drivers and require a 0x1c  return  to  verify  that the
  628.          functions used by the application are present.   At this
  629.          time, a  function  0x1c  is  not actually implemented by
  630.          X00.SYS, Opus!Com or BNU.
  631.  
  632.          When given, this switch tells BNU to return 0x1c, and so
  633.          allows applications relying  on  0x1c  to  work with it.
  634.          Typically, such  programs will return with  "FOSSIL  not
  635.          present" or  "FOSSIL  version too old" (or words to that
  636.          effect) when BNU is loaded without using '/O'.
  637.  
  638.  
  639.  
  640.     /Z        Sets 16550 FIFO size/trigger levels
  641.               Available in .SYS and .COM versions
  642.  
  643.          eg.  BNU /Z0
  644.               Enables full 16550 FIFO buffering (16/14)
  645.               BNU /Z5
  646.               Disables 16550 FIFO buffers
  647.  
  648.          This switch provides the ability to 'fine tune' a system
  649.          equipped with  a National  Semiconductor  16550AN  UART.
  650.          The UART  is  the  device used in PC's for  asynchronous
  651.          communications handling,  and  the 16550AN is a superior
  652.          form of these (as compared  to  an  8250  or  16450 with
  653.          which it is pin-compatible), since it provides  on-board
  654.          FIFO (first-in   first-out)   buffers   or   queues  for
  655.          receiving and transmitting.
  656.  
  657.  
  658.  
  659.                                 - 9 -
  660.  
  661.  
  662.                       BNU Revision 5 FOSSIL Communications Driver
  663.                                                      Version 2.02
  664.  
  665.          Software must be built to specifically take advantage of
  666.          this UART's  features in order to gain any real benefit.
  667.          Normally, the  16550's  FIFO  buffers  are  disabled  on
  668.          power-up, and   remain  that  way  unless   specifically
  669.          enabled.  The software itself must service interrupts by
  670.          emptying and  filling  "queues"  rather  than the normal
  671.          single character receive and transmit holding registers.
  672.          Having this  ability  to   service   multiple  character
  673.          requests in  one  hardware  interrupt   call   makes  it
  674.          possible to   SIGNIFICANTLY   reduce  interrupt  service
  675.          overhead and thus CPU usage  on  any  machine.  This has
  676.          very obvious   advantages   when   operating   under   a
  677.          multitasker, on   a  network,  concurrently  with  other
  678.          heavily interrupt-driven devices or with modems or other
  679.          communications devices running at high baud rates.
  680.  
  681.          The /Z switch takes a single  digit parameter - a number
  682.          between 0  and  5.   This  number affects  the  internal
  683.          settings of both the UART itself (its internal 'trigger'
  684.          levels, which  define  how  "full"  the  FIFO's  will be
  685.          allowed to get before triggering an interrupt to the CPU
  686.          for service) and how full BNU will let the transmit FIFO
  687.          be queue on each transmit 'request'.
  688.  
  689.          Valid numeric parameters to the /Z switch are:
  690.  
  691.               /Z0            16 bytes       14 bytes (max)
  692.               /Z1            14 bytes       14 bytes (max)
  693.               /Z2            08 bytes       08 bytes
  694.               /Z3            04 bytes       04 bytes
  695.               /Z4            01 byte        01 byte
  696.               /Z5                - FIFOs disabled -
  697.  
  698.          Where 16550AN's  are  not   present,  BNU  automatically
  699.          ignores this switch completely.   The default  value  is
  700.          '/Z0', which activates the full 16550AN capability.
  701.  
  702.  
  703.  
  704.     /M        Enable/disable initialisation message
  705.               Available in .SYS and .COM versions
  706.  
  707.          eg.  /M+  Enable init message
  708.               /M-  Disables init message
  709.  
  710.          Normally the   driver   outputs   a   message   when  an
  711.          applications initialises  the  driver for its use.  This
  712.          may be suppressed or reenabled by using this switch.
  713.  
  714.  
  715.  
  716.  
  717.     /U        Unload driver from memory
  718.               Available in .COM version only
  719.  
  720.          eg.  BNU /U
  721.               Attempts unloading resident driver from memory
  722.  
  723.  
  724.  
  725.                                 - 10 -
  726.  
  727.  
  728.                       BNU Revision 5 FOSSIL Communications Driver
  729.                                                      Version 2.02
  730.  
  731.          This switch  tells BNU.COM to unload itself from memory.
  732.          This forces all ports to  be  deactivated  (if  any  are
  733.          active).  This  will fail if programs loaded  after  BNU
  734.          have "captured"  interrupt vectors which are used by BNU
  735.          (and which BNU cannot restore  as  a  result).   In this
  736.          case, BNU will not load, but will indicate  this  in  an
  737.          error message.    You  will  have to either unload these
  738.          later programs (such as FOSSIL  appendages),  or  reboot
  739.          your system.
  740.  
  741.          Since BNU.SYS is a device driver, it cannot  be disabled
  742.          or unloaded from memory.
  743.  
  744.  
  745.  
  746.     /Q        Disable communications driver interface
  747.               Available in .SYS and .COM versions
  748.  
  749.          eg.  BNU /Q
  750.               Disables resident driver
  751.  
  752.          This switch  is normally given when BNU installs itself,
  753.          and the effect is to "delay"  capturing  of  the INT 14H
  754.          vector until  a  '/C' command is issued.   This  may  be
  755.          useful if  loading  with  a  multitasker and using other
  756.          incompatible communications drivers in other tasks.
  757.  
  758.          If issued while BNU is already  loaded,  the  previously
  759.          active INT   14H  communications  services   vector   is
  760.          restored.  BNU's    extended    FOSSIL    services   are
  761.          effectively "dropped" out of the chain.
  762.  
  763.  
  764.  
  765.     /B        System reboot
  766.  
  767.          eg.  BNU /B0
  768.               Select default reboot method
  769.               BNU /B
  770.               Reboot (warm)
  771.  
  772.          This switch has two uses.   When  a digit is given after
  773.          the 'B', the reboot method is selected.  Only two values
  774.          are valid 0 or 1.
  775.  
  776.          Method 0 selects a standard BIOS method  of  jumping  to
  777.          the system's  reset  vector.  This should work with most
  778.          DOS environments on a wide  range of hardware, including
  779.          PC/XT/AT and 386 compatibles.
  780.  
  781.          Method 1 makes use of the AT's keyboard  reset  line  to
  782.          cause a  system  reboot.   It  will  work only on AT and
  783.          386AT systems.  However,  this  method  will  work under
  784.          some 386 specific software where the first  method  does
  785.          not.  (for  example,  PC-MOS/386).   In short, it "plays
  786.          rough".  Some 386 machines  and almost all PC/XT systems
  787.          cannot and should not use this method.
  788.  
  789.  
  790.  
  791.                                 - 11 -
  792.  
  793.  
  794.                       BNU Revision 5 FOSSIL Communications Driver
  795.                                                      Version 2.02
  796.  
  797.          If no  digit  is  given  after  the 'B', BNU proceeds to
  798.          reboot the machine - unconditionally.
  799.  
  800.  
  801.  
  802.     /H or /?  Display help information
  803.               Available in .COM version only
  804.  
  805.          This switch  displays  information  about  command  line
  806.          switches and  usage  for  those who don't  believe  that
  807.          reading manuals is a very useful exercise.  Pity they'll
  808.          probably never discover or know about this switch unless
  809.          told....
  810.  
  811.          This switch  much  be  used  alone,  and  will  not load
  812.          BNU.COM into memory.  The  help  screen  displayed  will
  813.          look like:
  814.  
  815.  BNU Revision 5 FOSSIL Compatible Asynchronous Communications Driver v2.02
  816.  Copyright (C)1992, David Nugent & Unique Computing Pty Ltd FidoNet 3:632/348
  817.   ■  Usage: BNU [options]     · accepts / or - as switch character
  818.      /U          ∙ Uninstall (if already resident)
  819.      /T=nnnn     ∙ Set TX buffer size to <nnnn> (decimal)
  820.      /R=nnnn     ∙ Set RX buffer size to <nnnn> (decimal)
  821.      /P=nn       ∙ Enable nn concurrent ports (1-16 decimal)
  822.      /D[=n+|-]   ∙ Enable or install diagnostics panel
  823.      /N          ∙ Disable diagnostics panel (may be reenabled)
  824.      /A=nn       ∙ Set screen attribute for diagnostics window
  825.      /Lp=n[,lps] ∙ Lock port <p> (0=COM1) baud rate to <n> (0=Unlock)
  826.                    Optional: l=Character length, p=Parity, s=Stop Bits
  827.      /W=n+|-     ∙ Enable(+)/disable(-) carrier watch on port <n> (0=COM1)
  828.      /Q          ∙ Prevent INT 14H capture (install) or release INT 14H
  829.      /M+|-       ∙ Enable(+)/disable(-) FOSSIL "init" message
  830.      /I=n+|-     ∙ Initialise(+)/deinitialise(-) FOSSIL on port <n>
  831.      /F+|-       ∙ Enable/dssable faster screen writes via ANSI driver
  832.      /B[0|1]     ∙ Select reboot method, or perform system reboot
  833.      /Z[0-5]     ∙ Sets 16550 FIFOs [0=Max(16) 4=Min(1) 5=Disabled]
  834.      /O          ∙ Enable function 0x1c "compatibility"
  835.      /C          ∙ Recapture INT 14H vector
  836.      /S          ∙ Display driver status
  837.      /H or /?    ∙ Display this help screen
  838.  
  839.  
  840.  
  841.     /C        Recapture INT 14H vector
  842.               Available in .COM version only
  843.  
  844.          eg.  BNU /C
  845.               Recapture INT 14H
  846.               (must not be used with any other switches!)
  847.  
  848.          This forces BNU to takes a look at the current  location
  849.          of INT  14H  and  makes  sure  that  it  points into the
  850.          resident portion of BNU.   If not, it resets the INT 14H
  851.          address to the correct location.
  852.  
  853.          This is most often necessary when using a  multitasker -
  854.          such as  DESQview(tm) - which revectors the interrupt on
  855.  
  856.  
  857.                                 - 12 -
  858.  
  859.  
  860.                       BNU Revision 5 FOSSIL Communications Driver
  861.                                                      Version 2.02
  862.  
  863.          loading.  Since  one  standard  method  of detecting the
  864.          presence of a FOSSIL driver is to examine memory shortly
  865.          after the location pointed  to  by the INT 14H interrupt
  866.          vector, the  'stealing'  of the interrupt  in  this  way
  867.          causes many  applications  to  fail to locate the FOSSIL
  868.          driver.  Applications which  use  the  'init  signature'
  869.          method of detecting a FOSSIL driver will not normally be
  870.          affected by this behaviour, but there  is  a  risk  that
  871.          whatever 'stole'  the vector will unintentionally change
  872.          CPU registers used by the  application  for  the  FOSSIL
  873.          call, causing any number of complications  (and probably
  874.          a system crash!).
  875.  
  876.          Another use  of  this switch might be to enable toggling
  877.          between two or more communications  drivers  which  make
  878.          use  of  INT  14H  (such  as packet radio communications
  879.          drivers).  '/Q'  can  be  used  to  switch BNU "off" and
  880.          restore a previous vector, and '/C' used to recapture it
  881.          again for FOSSIL use.  The  following  sequence  is  the
  882.          suggested method of doing this:
  883.  
  884.            BNU /Q [other switches]
  885.                  (Install but don't vector INT 14H)
  886.            <install other communications driver>
  887.            BNU /C
  888.                  (Capture INT 14H saving previous vector)
  889.  
  890.          To use the secondary driver (which could even be another
  891.          FOSSIL driver,  but cannot be BNU), use  "BNU  /Q",  and
  892.          "BNU /C" to use BNU again.
  893.  
  894.  
  895.          NOTE: This  switch  MUST NOT be combined with any others
  896.          (since they will be ignored)!
  897.  
  898.  
  899.  
  900.     /W        Enable/disable carrier watchdog
  901.  
  902.          eg.  BNU /W0+
  903.               Enables carrier watchdog on port 0 (COM1)
  904.               BNU /W1-
  905.               Disables carrier watch on port 1 (COM2)
  906.  
  907.          This switch  enables or disables  carrier  watch  for  a
  908.          particular communications port.  If carrier detect drops
  909.          (the caller  hangs  up) while the watchdog  function  is
  910.          active, the system will be rebooted.
  911.  
  912.          This feature  is most often used with programs which are
  913.          not "carrier smart" and do  not monitor carrier detect -
  914.          some of these were probably never intended  to  run with
  915.          output directed  to  a communications port.  If a caller
  916.          hangs up while such a program  requests input, it may be
  917.          effectively "stuck", unable to continue until  its input
  918.          is satisfied.    It is possible that this situation also
  919.          presents a security risk.
  920.  
  921.  
  922.  
  923.                                 - 13 -
  924.  
  925.  
  926.                       BNU Revision 5 FOSSIL Communications Driver
  927.                                                      Version 2.02
  928.  
  929.          The carrier  detect watchdog is not an elegant nor ideal
  930.          solution to this problem,  and  especially not useful in
  931.          multitasking or networked computing environments,  where
  932.          rebooting of   a   whole   machine   could  upset  other
  933.          concurrently running tasks  and workstations.  There are
  934.          some very clever "watchdog" programs which are much more
  935.          suitable to do this, such as Angelo Besani's(++) WABIRD,
  936.          which gracefully terminates the program and restores the
  937.          system to the state it was in when originally invoked.
  938.  
  939.          Ommission of  the  '+'  or '-' is considered  an  error.
  940.          This switch MUST be used exclusive of all others.
  941.  
  942.  
  943.     (++) Angelo Basani is contactable at:
  944.               Amnesia CBCS, Varese - Italy
  945.               Fidonet 2:331/101.0, +39-331-263425
  946.  
  947.  
  948.  
  949.  
  950.     /S        Display BNU status
  951.               Available in .COM version only
  952.  
  953.          eg.  BNU /S
  954.               Displays BNU's current status
  955.  
  956.          The resulting  display  will depend on the current state
  957.          of the resident version of  the driver in memory, but if
  958.          loaded will normally look similar to:
  959.  
  960.          Driver Version: 2.02    Installed
  961.         Ports Available: 1
  962.            Ports Active: 0
  963.         FOSSIL Revision: 5
  964.          TX Buffer Size: 2048
  965.          RX Buffer Size: 2048
  966.         Max Buffer Size: 4096
  967.            Diags Module: Inactive
  968.            Init Message: Enabled
  969.             ANSI Output: Fast
  970.             Port Locked: 1 @ 19200
  971.  
  972.          If the driver is not yet installed, only  the first line
  973.          will be  shown,  with  the  text  "Not  Installed".  The
  974.          diagnostics module (explained below) is one of "Active",
  975.          "Inactive" (present but disabled)  or "Not loaded".  Any
  976.          ports whose  baud  rate  has  been "locked"  are  listed
  977.          sequentially.
  978.  
  979.          Note that  port  numbers are ZERO-BASED.  Port 0 is what
  980.          DOS refers to COM port 1  (ie.  the device COM1), port 1
  981.          is COM2  etc.    DOS does not define devices  for  ports
  982.          above port 3, though BNU can utilise them.
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.                                 - 14 -
  990.  
  991.  
  992.                       BNU Revision 5 FOSSIL Communications Driver
  993.                                                      Version 2.02
  994.  
  995.     /D        Enable/disable or install diagnostics module
  996.  
  997.          eg.  BNU /D2+
  998.               On BNU install: Installs the diagnostics panel with
  999.                               a default 'refresh' rate of 2, and
  1000.                               enabled (the '+' here is optional)
  1001.               Otherwise:      Provided the diagnostics module has
  1002.                               been installed, enables it and sets
  1003.                               the 'refresh' rate to 2
  1004.               BNU /D-
  1005.               Disables diagnostics screen updating (but does not
  1006.               deactivate them)
  1007.  
  1008.          This is   an   advanced   option,  useful  for  software
  1009.          development using FOSSIL  calls  as  a  means of viewing
  1010.          what the current state of the FOSSIL driver  is in 'real
  1011.          time'.  When  enabled  and  a  port is active for FOSSIL
  1012.          extended calls, a panel is  continually refreshed on the
  1013.          screen during each timer tick which displays  a  summary
  1014.          of various FOSSIL driver states.
  1015.  
  1016.          Information for   up   to   4  ports  can  be  displayed
  1017.          concurrently on the screen (thought this might get a bit
  1018.          messy!), overlaying anything currently displayed.
  1019.  
  1020.          By default, the "refresh rate" of the panel(s) is set to
  1021.          0, which means it is refreshed EVERY timer tick, or at a
  1022.          rate of about 18.2 times per second.  Refresh rates of 1
  1023.          means every second tick, 2  every third, 3 every fourth,
  1024.          and so  on.   Since video memory is slower  than  normal
  1025.          RAM, slowing  down  the  refresh  rate will decrease the
  1026.          overall detrimental  effect   that  diagnostics  has  on
  1027.          system performance.
  1028.  
  1029.          It should  be  noted  that  running  diagnostics   quite
  1030.          significantly impedes  system  performance  and  adds  a
  1031.          great deal  of  CPU  overhead   in   servicing  what  is
  1032.          effectively a "background" task.  You can therefore only
  1033.          run diagnostics  on a system equipped with  a  fast  CPU
  1034.          (286 or  above), running at lower baud rates and/or with
  1035.          a 16550AN UART.  Some general 'minimal' guide-lines are:
  1036.  
  1037.            ■ 2400 baud or below
  1038.               ∙ 6-8MHZ 286 class
  1039.               ∙ 16450 UART or better
  1040.  
  1041.            ■ 9600 baud
  1042.               ∙ 10-16MHZ 286 class  -or-   ∙ 20MHZ 386 class
  1043.               ∙ 16550 UART                  ∙ 16450 UART
  1044.  
  1045.            ■ 19200 baud
  1046.               ∙ 16-20MHZ 286/386 class
  1047.               ∙ 16550AN UART
  1048.  
  1049.          It takes quite a bit of  processing  power  to  drive  a
  1050.          'background' routine  to  refresh video  RAM  (which  is
  1051.          relatively slow)    without    impacting    on    system
  1052.          performance.
  1053.  
  1054.  
  1055.                                 - 15 -
  1056.  
  1057.  
  1058.                       BNU Revision 5 FOSSIL Communications Driver
  1059.                                                      Version 2.02
  1060.  
  1061.  
  1062.          If you  are  having  any  difficulties  at all using the
  1063.          driver and have enabled the  diagnostics  panel, disable
  1064.          them immediately and try again.  I have found this to be
  1065.          a major cause of problems in the past.  This  feature is
  1066.          officially 'not  supported'  under any conditions, and I
  1067.          certainly don't need to hear that it "does" or "doesn't"
  1068.          work on your system.  Before  ANY problem report is made
  1069.          for any reason whatsoever, please try whatever  you  are
  1070.          trying to achieve WITHOUT DIAGNOSTICS LOADED!
  1071.  
  1072.          Usual symptoms  of  the diagnostics panel impacting in a
  1073.          detrimental way on a system's ability to communicate are
  1074.          failed handshaking   between   Fidonet   mailers,   poor
  1075.          resilience in file transfers when "task" switching under
  1076.          multitasking software, some spurious character loss from
  1077.          remote during terminal sessions, failure to initialise a
  1078.          modem and  inability  to detect incoming  calls  from  a
  1079.          modem returning    verbose   response   codes   (amongst
  1080.          others...).
  1081.  
  1082.          When loaded (which must be  done  via the /D switch when
  1083.          BNU is initially installed), you can selectively  enable
  1084.          or disable  the diagnostics display from a keyboard "hot
  1085.          key".  The window is in an  initial  "on" state, but can
  1086.          be toggled  on or off by pressing LeftShift-Ctrl-5  (the
  1087.          '5' located  on the numeric keypad).  The 'refresh rate'
  1088.          can also  be adjusted on-the-fly  using  LeftShift-Ctrl-
  1089.          Grey+ and LeftShift-Ctrl-Grey-.  The panel itself can be
  1090.          shifted on the screen by holding down the LeftShift-Ctrl
  1091.          combination and pressing Up, Down, Left and  Right arrow
  1092.          keys.  Note  that  the background screen is NOT restored
  1093.          (since it is never saved).
  1094.  
  1095.          In summary:
  1096.  
  1097.            Left-Shift     Action
  1098.  
  1099.            Numeric 5      Toggle panel "off" and "on"
  1100.            Grey+/Grey-    Speed up/slow down panel refresh rate
  1101.            Arrow keys     Move diagnostics panel on screen
  1102.  
  1103.          Note that these 'hot-keys'  work, no matter if the panel
  1104.          is visible  or  not, but not if disabled  using  the  /N
  1105.          switch.
  1106.  
  1107.          Toggling the  panel  "off"  using LS-5 does not entirely
  1108.          defeat the CPU overhead required  to  service the panel.
  1109.          In that case, the background task is still  active,  and
  1110.          only the  panel  is  not displayed.  To entirely disable
  1111.          the diagnostics  panel, either  unload  and  reload  BNU
  1112.          without the  /D  switch, or use "BNU /N" to  effectively
  1113.          turn it off.
  1114.  
  1115.          The following  diagram shows a typical diagnostics panel
  1116.          display, and explains the  fields  shown.    All numeric
  1117.          values are hexadecimal (base 16).
  1118.  
  1119.  
  1120.  
  1121.                                 - 16 -
  1122.  
  1123.  
  1124.                       BNU Revision 5 FOSSIL Communications Driver
  1125.                                                      Version 2.02
  1126.  
  1127.  
  1128.  
  1129.       ┌── Port 0001 ┐ ─────── Port number, zero based (0=COM1)
  1130.       │ TX Cnt 0001 │ ─────── Chrs currently in transmit buffer
  1131.       │ TX Max 003F │ ─────── Maximum chrs found in transmit
  1132.       │ TX Bse 141E │ ]       buffer (this is cleared whenever
  1133.       │ TX Top 241D │ ] ──┐   the port is initialised)
  1134.       │ TX Nxt 144A │ ]   └── Transmit buffer pointers/limits
  1135.       │ TX End 1449 │ ]
  1136.       │ RX Cnt 0002 │ ─────── Chrs currently in receive buffer
  1137.       │ RX Max 0019 │ ─────── Maximum chrs found in receive
  1138.       │ RX Bse 241E │ ]       buffered (cleared on init)
  1139.       │ RX Top 341D │ ] ───── Receive buffer pointers/limits
  1140.       │ RX Nxt 249A │ ]  ┌─── Current flow control state
  1141.       │ RX End 249A │ ]  │    highbyte=remote, lowbyte=local
  1142.       │ FlwFlg 0080 │ ───┘┌── Active flow control settings
  1143.       │ FlwCtl 0002 │ ────┘   highbyte=remote, lowbyte=local
  1144.       │ Status 6238 │ ─────── Current line/modem status
  1145.       │ FifoSz 0010 │ ─────── 16550AN FIFO buffer (TX) size
  1146.       │ Errors 0000 │ ─────── Number of FOSSIL errors registered
  1147.       │ ErrFun 0000 │ ─────── Function (AX value) of error call
  1148.       │ LastAX 0300 │ ─────── Last Int 14H function call (AX)
  1149.       │ Int14H 5F73 │ ─────── Accumulated Int 14H calls
  1150.       │ ISRInt 0D4F │ ─────── Accumulated hardware interrupts
  1151.       └──BNU─vX.XX──┘
  1152.  
  1153.  
  1154.  
  1155.          If you want to load diagnostics but have them completely
  1156.          inactive by   default,  use  the  following  batch  file
  1157.          sequence:
  1158.  
  1159.               REM Load diagnostics module when installing BNU
  1160.               BNU -D <other switches ...>
  1161.               REM Immediately disable them
  1162.               BNU -N
  1163.  
  1164.          The option to load without  screen  refresh "/Dn-" still
  1165.          uses clock cycles: only the screen update is inhibited.
  1166.  
  1167.          The "/N"   switch   actually  disables  the   background
  1168.          processing and   will   not  cause  any  degradation  in
  1169.          performance.  "/D" can be  used  to  reenable the module
  1170.          again.
  1171.  
  1172.  
  1173.  
  1174.  
  1175.     /N        Disable diagnostics panel
  1176.  
  1177.          eg.  BNU /N
  1178.  
  1179.          This switch disables output of diagnostic information to
  1180.          the screen, and also the background processing  required
  1181.          to update it.
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.                                 - 17 -
  1188.  
  1189.  
  1190.                       BNU Revision 5 FOSSIL Communications Driver
  1191.                                                      Version 2.02
  1192.  
  1193.  
  1194.     /A        Set diagnostics panel attribute
  1195.  
  1196.          eg.  BNU /A=79
  1197.               Causes the  diagnostics  panel  to  become  intense
  1198.               white on red
  1199.  
  1200.          This allows the physical screen attribute to be set.  By
  1201.          default, a colour screen uses  dark blue on white, and a
  1202.          monochrome screen reverse video.
  1203.  
  1204.  
  1205.  
  1206.     /I        Init/deinit FOSSIL enhanced functions
  1207.  
  1208.          eg.  BNU /I0+
  1209.               Initialise port 0 (COM1) for FOSSIL processing
  1210.               BNU /I1-
  1211.               Deinitialise port 1 (COM2)
  1212.  
  1213.          This provides the facility to force normally  non-FOSSIL
  1214.          aware BIOS  compatible  programs to use the basic FOSSIL
  1215.          character input/output functions.
  1216.  
  1217.          This has  specific  advantages   when  running  under  a
  1218.          multitasker, since  all  input/output is from  interrupt
  1219.          serviced buffers,   and   not   directly   polling   the
  1220.          communications port for activity.
  1221.  
  1222.          Not all non-FOSSIL aware  programs  will  be  compatible
  1223.          with use  of this option.  Only strictly  BIOS-compliant
  1224.          programs will benefit.  Some program will have their own
  1225.          interrupt driven  communications  functions,  and others
  1226.          will poll the port directly.  Initialising the FOSSIL in
  1227.          this way MAY interfere with  correct  operation of these
  1228.          programs.
  1229.  
  1230.  
  1231.  
  1232.  
  1233.                          GENERAL INFORMATION
  1234.  
  1235.  
  1236.     The following sections outline how best to utilise the driver
  1237.     and get the best performance from it on your hardware setup.
  1238.  
  1239.  
  1240.     INSTALLATION
  1241.  
  1242.     BNU.COM is usually installed in your AUTOEXEC.BAT  or at some
  1243.     time before you    load    your    communications   software.
  1244.     Alternatively, MS-DOS 4.xx has  an option to allow loading of
  1245.     some 'compatible' TSRs using an "install=" statement  in your
  1246.     CONFIG.SYS.  A major  benefit  of  this  is  that  BNU can be
  1247.     loaded before any environment variables are set, and so takes
  1248.     up the absolute minimum of RAM.   However, as with the device
  1249.     driver when loaded   from  CONFIG.SYS,  BNU.COM   cannot   be
  1250.     unloaded from memory using the "/U" option.
  1251.  
  1252.  
  1253.                                 - 18 -
  1254.  
  1255.  
  1256.                       BNU Revision 5 FOSSIL Communications Driver
  1257.                                                      Version 2.02
  1258.  
  1259.  
  1260.     ERRORLEVELS
  1261.  
  1262.     The following errorlevels are returned by BNU (this also
  1263.     documents some of the possible errors which can be returned):
  1264.  
  1265.  
  1266.          0    No error - operation(s) successful
  1267.          1    Status was requested and displayed
  1268.          2    A FOSSIL driver other than BNU is present
  1269.          3    Incompatible version of BNU is already loaded
  1270.          4    Can't modify parameters with ports active
  1271.          5    BNU is not yet resident or loaded
  1272.          6    Not used
  1273.          7    DOS memory allocation error - fatal abort
  1274.          8    Invalid command line option
  1275.          9    Can't unload - FOSSIL appendages are loaded
  1276.          10   System reboot failure
  1277.          11   Error enabling or disabling carrier watch
  1278.          12   Unable to recapture INT 14H vector
  1279.          13   Can't unload if installed from CONFIG.SYS
  1280.          14   Maximum combined TX/RX buffer size exceeded
  1281.          15   Can't disable/enable diags panel - not loaded
  1282.          16   Unable to unload due to interrupt chaining
  1283.          17   Problem initialising FOSSIL (with /I)
  1284.  
  1285.  
  1286.  
  1287.  
  1288.     MULTITASKERS
  1289.  
  1290.     Prior versions of BNU directly supported various multitaskers
  1291.     by allowing for  "poll" detection on status and character I/O
  1292.     calls made to the FOSSIL.  When BNU sensed a task was "idle",
  1293.     it automatically gave  time slices  up  during  "polling"  to
  1294.     other tasks in the system.
  1295.  
  1296.     This internal multitasker  support  has  been   removed  from
  1297.     BNU.COM and BNU.SYS,   and   the   /X  switch  is  no  longer
  1298.     implemented.  However, the current  version  of BNU does have
  1299.     'hooks' for an installable driver to link into  BNU and carry
  1300.     out this task.   This  eliminates  much  of  the  unnecessary
  1301.     "baggage" suffered by users  of  BNU  who  do  not  need this
  1302.     feature.  It also  eliminates  code  made  redundant  by  not
  1303.     having all multitasker   time   slice   resident   at   once,
  1304.     irrespective of which specific  multitasker  is in use.  Only
  1305.     that code which is actually used and plays a part  in support
  1306.     of the multitasker itself is loaded.
  1307.  
  1308.     While this current release (2.02) is not accompanied by these
  1309.     drivers (which are   now   [October,  1992]  in  beta  test),
  1310.     multitasking appendages for DESQview/TopView  and  PC-MOS/386
  1311.     will soon be available.
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.                                 - 19 -
  1320.  
  1321.  
  1322.                       BNU Revision 5 FOSSIL Communications Driver
  1323.                                                      Version 2.02
  1324.  
  1325.  
  1326.     MEMORY
  1327.  
  1328.  
  1329.     BNU.COM is approximately  11K  in size.  It is made up of the
  1330.     following main parts:
  1331.  
  1332.  
  1333.     Description           Size  Used by
  1334.     Resident
  1335.     -------------------------------------------------------------
  1336.     ISR Device Driver     0.5K  Common 4 ports   Yes
  1337.     INT 14H Despatcher    4.5K  Common 4 ports   Yes
  1338.     Diagnostics Model     1.0K  Common 4 ports   Optional
  1339.     Initialisation/Setup  1.0K  Run time only    Discarded
  1340.     Command line utility  4.0K  Run time only    Discarded
  1341.     -------------------------------------------------------------
  1342.  
  1343.     What eventually remains resident  depends  upon  what command
  1344.     line options are used.  Initial overhead is about  5K for the
  1345.     ISR and despatcher.   If  diagnostics are used (rarely), then
  1346.     add 1K. Add to this, the sum  of  the  transmit  and  receive
  1347.     buffers times the number of communications ports selected.
  1348.  
  1349.  
  1350.  
  1351.     THE DIAGNOSTICS PANEL
  1352.  
  1353.     The ability to  view the state of the FOSSIL driver  is  very
  1354.     useful when developing  software  utilising FOSSIL calls.  It
  1355.     can also be an invaluable aid in  "tuning" the driver to your
  1356.     machine.  Memory is precious - especially in  a  multitasking
  1357.     environment, and most  of  the time, the standard 1K transmit
  1358.     and receive buffers are far too  much  to allocate.  This can
  1359.     only be empirically tested.
  1360.  
  1361.     Instead of "guessing" and using trial and error  to  see  how
  1362.     well the driver  performs,  it  is  much better to enable the
  1363.     diagnostics window.  This provides a 'snapshot' of the driver
  1364.     18.2 times per second (each clock  tick).   Particular fields
  1365.     to look at are:
  1366.  
  1367.  
  1368.          "TX Cnt"  Indicates how full the transmit  buffer  is in
  1369.                    bytes.
  1370.  
  1371.          "TX Max"    This  is  the  current  'maximum'  count  if
  1372.                    characters in the  transmit buffer detected by
  1373.                    the diagnostics routine (it views  the  driver
  1374.                    in 'snapshots'   so   cannot   be   completely
  1375.                    accurate.
  1376.  
  1377.          "RX Cnt"  Indicates how full  the  receive  buffer is in
  1378.                    bytes.
  1379.  
  1380.          "RX Max"   Maximum count of characters  in  the  receive
  1381.                    buffer (see TX Max).
  1382.  
  1383.  
  1384.  
  1385.                                 - 20 -
  1386.  
  1387.  
  1388.                       BNU Revision 5 FOSSIL Communications Driver
  1389.                                                      Version 2.02
  1390.  
  1391.          "Int14h"  Particularly  useful  for  monitoring  program
  1392.                    activity.  This  counter ticks over every time
  1393.                    the running  application  requests   a  FOSSIL
  1394.                    service.
  1395.  
  1396.          "Errors"  Locates  possible  problems in the program you
  1397.                    are running.  Any  time  the  program makes an
  1398.                    "illegal" call  (usually  incorrect   register
  1399.                    values).  The   last   FOSSIL   function  code
  1400.                    invoked which  triggered  the  error  will  be
  1401.                    displayed next to "ErrFun".
  1402.  
  1403.  
  1404.     By observation, it is possible to calculate the  optimum size
  1405.     for both receive and transmit buffers.
  1406.  
  1407.  
  1408.  
  1409.     16550 USART SUPPORT
  1410.  
  1411.     BNU fully supports  the  16550 USART in buffered mode.  Using
  1412.     the /Z command line switch, you  can  decrease  the amount of
  1413.     FIFO buffering used, or disable the FIFO's completely.
  1414.  
  1415.     This option has  been  included for "compatibility"  reasons.
  1416.     Previous releases of   BNU   used  the  equivalent  of  "/Z2"
  1417.     buffering, whereas this release  defaults  to full use of the
  1418.     FIFO queues.  If you have problems using the default "/Z0"
  1419.     setting, try reducing  first to "/Z1", then "/Z2"  or  lower,
  1420.     and once you've found a setting that works, please contact me
  1421.     (I'm interested in  know what sort of setup this DOESN'T work
  1422.     on).
  1423.  
  1424.  
  1425.  
  1426.     BETA VERSIONS
  1427.  
  1428.  
  1429.     Versions of BNU will either be  BETA  TEST  versions  or full
  1430.     releases.   Public release versions are numbered  ending with
  1431.     a zero and  carry  no  "alpha",  "beta", "gamma" etc. suffix.
  1432.     Beta test releases carry an suffix  after the version number,
  1433.     and will be  numbered  ending  with  a  non-zero  digit  (for
  1434.     identification of incremental versions).
  1435.  
  1436.     Beta releases of  the  BNU driver are not publicly available.
  1437.     These are generally requestable from a number of systems, but
  1438.     are be restricted for use by beta testing sites only.  If you
  1439.     would like to assist in beta testing  future beta versions of
  1440.     BNU, request "BNUINFO"  (magic  name)  WaZoo   from   Fidonet
  1441.     3:632/348 (or Alternet 7:833/387).
  1442.  
  1443.     Beta releases are,   by  nature,  less  stable  than  release
  1444.     versions.  If you obtain one, please  do NOT distribute it by
  1445.     posting it for download or file request.
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.                                 - 21 -
  1452.  
  1453.  
  1454.                       BNU Revision 5 FOSSIL Communications Driver
  1455.                                                      Version 2.02
  1456.  
  1457.     PROBLEM REPORTS
  1458.  
  1459.  
  1460.     If you have  problems  in  getting BNU to run on your system,
  1461.     remember that I cannot solve that  problem if you do not take
  1462.     the time to  let  me know.  If you do decide  to  pursue  any
  1463.     problem, please give  as much detail regarding your system as
  1464.     possible so that I can more readily  evaluate  why  something
  1465.     may or may  not  be  occurring.  Please keep the  information
  1466.     relevant (ie. I  don't need to know your shoe size, but I may
  1467.     want to know what's in your CONFIG.SYS!).
  1468.  
  1469.  
  1470.     Some information I'll probably need:
  1471.  
  1472.          o    Machine type/model and class (XT/AT/386 etc.)
  1473.  
  1474.          o    Type of USARTs installed (8250/16450/16550 etc.)
  1475.  
  1476.          o    Communications software you're running
  1477.  
  1478.          o    Contents of your AUTOEXEC.BAT/CONFIG.SYS or other
  1479.               batch files which may be relevant
  1480.  
  1481.          o    Switches used to load BNU.COM
  1482.  
  1483.          o    Whether  you've  used   BNUPORT   to   change  port
  1484.               assignments
  1485.  
  1486.          o    Brief description of modem if at all unusual ie.
  1487.               high speed, non-standard or sub-standard<grin>
  1488.  
  1489.          o    Version of MS-DOS in use
  1490.  
  1491.          o    Multitasker in use (if any), including version
  1492.  
  1493.          o    Other TSR's loaded during communications activity
  1494.  
  1495.          o    What other FOSSIL drivers have worked in the past
  1496.  
  1497.          o    An accurate and complete (oh, I wish!)  description
  1498.               of your problem
  1499.  
  1500.          o    Contents of a diagnostics window when the problem
  1501.               is occurring (if at all possible)
  1502.  
  1503.          o    If  you  have  TurboPower's TSR utilities or Andrew
  1504.               Wylie's DOSMAP program  (or some similar DOS memory
  1505.               control block  mapping  utility),   then   redirect
  1506.               output of  this  to a file and include it with your
  1507.               report.  Try to duplicate the exact state of memory
  1508.               when the problem occurs.   Then  execute a command,
  1509.               something like:
  1510.  
  1511.                    "mapmem -v -h >output.mem"
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.                                 - 22 -
  1518.  
  1519.  
  1520.                       BNU Revision 5 FOSSIL Communications Driver
  1521.                                                      Version 2.02
  1522.  
  1523.     DEVELOPERS!
  1524.  
  1525.  
  1526.     BNU is currently being restructured to use an alternative far
  1527.     call model, instead  of  the  INT  14H  interface.  This will
  1528.     follow the same lines as a FOSSIL  appendage, and is expected
  1529.     to yield significant performance benefits for  DOS as well as
  1530.     benefits for the developer by allowing more direct high level
  1531.     language access.
  1532.  
  1533.     Enquiries regarding this project should be directed to any of
  1534.     the electronic addresses   listed   at   the  start  of  this
  1535.     document.
  1536.  
  1537.  
  1538.  
  1539.     SUPPORT
  1540.  
  1541.     An echomail conference originating  from  my  system (Fidonet
  1542.     3:632/348) called "BNU"  is  available  for general  use  for
  1543.     support of BNU   and   related  programs.   Topic  areas  are
  1544.     generally BNU related but also  cover a wider area, including
  1545.     FOSSIL communications, general  usage,  software  development
  1546.     using FOSSIL and 'tricks'.
  1547.  
  1548.     Please forward any enquiries regarding this conference to me.
  1549.  
  1550.  
  1551.  
  1552.     THANKS!
  1553.  
  1554.     Thank you to  the  many  people involved in helping the "BNU"
  1555.     project, especially those of you  willing  (and silly enough)
  1556.     to run beta  versions  on your own systems and  tolerate  the
  1557.     problems.  Without the  support of these people, I would have
  1558.     given up long ago.
  1559.  
  1560.     Special thanks to  Paul  Marwick   of   3:640/820   for   his
  1561.     painstaking assistance in beta testing, the high quality (and
  1562.     quantity!) of his reports and observations and by helping
  1563.     by proof-reading this documentation.  And to  his  poor users
  1564.     for putting up with "would you like to try something for
  1565.     me?" ...  :-)
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.                                 - 23 -
  1584.  
  1585.  
  1586.                       BNU Revision 5 FOSSIL Communications Driver
  1587.                                                      Version 2.02
  1588.  
  1589.  
  1590.                             LICENSE OF USE
  1591.  
  1592.  
  1593.     This license applies  ONLY  to  non-commercial  use of public
  1594.     release versions.  Special terms  cover  use of BNU, BNU beta
  1595.     test versions, any   accompanying  programs  (including   any
  1596.     supplied source code)  and  its  documentation  in commercial
  1597.     environments.  "Commercial" here  is  defined  loosely as any
  1598.     environment in which  software assists - either  directly  or
  1599.     indirectly - in   any   venture   concerning  making  profit,
  1600.     financial or other (material) gain.
  1601.  
  1602.     Vendors of commercial (for sale)  packages  should contact me
  1603.     regarding distribution arrangements.  Special versions of BNU
  1604.     are generated for  specific  commercial  products,  and  that
  1605.     product name is   displayed  as  a  part  of  BNU's  standard
  1606.     copyright message.  Any version of BNU distributed as part of
  1607.     another package or  product   which   does  not  display  any
  1608.     indication of it being a "special" version in  this way is in
  1609.     breach of this license.
  1610.  
  1611.     Programs and documentation  are supplied free of charge on an
  1612.     as is basis to the Fidonet (and othernet) community.  You are
  1613.     free to use them in any non-profit venture with no obligation
  1614.     on either myself or my company  to  support or be responsible
  1615.     for any such use (or misuse).
  1616.  
  1617.     BNU, any accompanying programs, source and this documentation
  1618.     are the exclusive property of Unique Computing  Pty  Ltd, and
  1619.     is protected by international copyright laws.  By obtaining a
  1620.     copy of the  package,  you  do  not  "own"  a copy - simply a
  1621.     license to use it.  All property  rights  are retained by the
  1622.     owner.
  1623.  
  1624.     You may use the package and/or give copies of  the package to
  1625.     others including posting  for  download  on a bulletin board,
  1626.     but only in a form that permits  inclusion  of  all  files as
  1627.     found in the  original,  archieved  form  in   which  BNU  is
  1628.     distributed.  You are  not permitted to modify any portion of
  1629.     the package in any way, including,  but not limited to adding
  1630.     files to or  removing  files  from the distribution  package,
  1631.     changing or editing  the  documentation,  and/or  changing or
  1632.     modifying the executable program.   Permission  is granted to
  1633.     repack the distribution  archive  using  a different  packing
  1634.     method, provided that the uncompressed contents EXACTLY match
  1635.     the uncompressed contents of the distribution archive (I have
  1636.     no particular affiliation   with   or   preference   for  any
  1637.     particular archiving method.
  1638.  
  1639.     BNU is not provided with a warranty  of  any kind, including,
  1640.     but not limited  to  fitness  for any particular  purpose  or
  1641.     consequential loss.
  1642.  
  1643.     This package may  be  posted  for download or file request by
  1644.     any FidoNet or compatible network  system  in  archived form,
  1645.     and in adherence  to  the  terms  of the License  above.   No
  1646.     profit may be   realised  directly  from  such  distribution,
  1647.  
  1648.  
  1649.                                 - 24 -
  1650.  
  1651.  
  1652.                       BNU Revision 5 FOSSIL Communications Driver
  1653.                                                      Version 2.02
  1654.  
  1655.     although BNU may  be  provided for download on "pay systems."
  1656.     Distribution on diskette form  is  strictly prohibited unless
  1657.     done for free  for  a charge not exceeding the  cost  of  the
  1658.     diskettes.
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.  
  1678.  
  1679.  
  1680.  
  1681.  
  1682.  
  1683.                                - End -
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.                                 - 25 -
  1716.  
  1717.